<?php
declare(strict_types=1);
namespace Cache;
interface CacheInterface
{
    /**
     * 自增缓存（针对数值缓存）
     * @param string $name 缓存变量名
     * @param int $step 步长
     * @return false|int
     */
    public function inc(string $name, int $step = 1): bool|int;

    /**
     * 自减缓存（针对数值缓存）
     * @param string $name 缓存变量名
     * @param int $step 步长
     * @return false|int
     */
    public function dec(string $name, int $step = 1): bool|int;

    /**
     * 获取数据
     * @param array|string $name 键名
     * @return mixed
     */
    public function get(array|string $name): mixed;

    /**
     * 设置缓存数据
     * @param string $name 键名
     * @param mixed $value 键值
     * @param int|null $expire 过期时间
     * @return bool
     */
    public function set(string $name, mixed $value, ?int $expire = null): bool;

    /**
     * 删除缓存数据
     * @param string $name 键名
     * @return bool
     */
    public function delete(string $name): bool;

    /**
     * 清除缓存数据
     * @return bool
     */
    public function flush(): bool;
}
